// promise 是一个新增构造函数  new promise 可以得到一个实例

// 如果 promise 表示一个异步操作，那么他的每一个实例就表示一个具体的异步操作；

// 使用 promise 解决 回调地狱问题

const fs = require('fs');

function getDataByPath(filePath){
    return new Promise(function(resolve,reject){
        fs.readFile(filePath, 'utf-8',(err,dataStr) => {
            if(err) resolve(err);
            reject(dataStr);
        });
    })
}

getDataByPath('./files/1.txt')
.then(function (data) {  
    console.log(data);
    // 返回 继续读取文件二
    return getDataByPath('./files/2.txt')
},function(err){
    console.log(err);
    return err.message;
}).then(function(data){

    console.log(data);

    //返回结果 让下一个继续读取 3
    return getDataByPath('./files/3.txt')
},function (err) {  
    console.log(err);
}).then(function (data) {  

    console.log(data);
},function (err) {  
    console.log(err);
})